Arrangements for use of dataforms, such as two-dimensional (2-D) bar codes, MaxiCodes, matrix codes, etc., are well known and increasing. A dataform, defined as a machine-readable image may be printed or otherwise placed on a surface for subsequent reading and decoding to recover data originally encoded into the dataform. Readers wherein a reflected image of a dataform is focused on a two-dimensional array of photo sensors for storage of a dataform image provide certain advantages. Readers of a second general type wherein a dataform image is stored into memory on a line-by-line or similar piece-by-piece basis can provide advantages in cost and simplicity. Such a reader may, for example, comprise a line scanner (e.g., including a linear array of CCD sensors) which is moved relative to the dataform to provide image data on a line-by-line basis. The present invention provides improvements particularly useful in this second type of dataform reader.
A first prior form of a line-by-line dataform reader is arranged to read 2-D bar codes, such as PDF417 or Supercode stacked codes, on a full codeword basis. After each line scan, an attempt is made to decode codewords for that scan line. If a codeword is found, the reader stores the decoded codeword for later output after the entire bar code has been decoded. The image data is not retained.
A second form of line-by-line dataform reader, to which the invention is applicable, is arranged to use image data from successive individual scan lines to assemble a full image of the dataform in memory. Decoding is then based on use of such stored image. In this type of reader one dimension of image storage is based on the number of pixels represented by a 1-D scanner device, such as a linear array of CCD sensors. Generally, a line of CCD sensors forming such a 1-D scanner device must be wide enough to cover the width of a dataform of interest along a first direction with adequate resolution to enable decoding. The scanner device then, by relative motion, is moved across the dataform along a second direction normal, or essentially normal, to the first direction.
This is represented conceptually in FIG. 1. The operator activates 1-D scanner device A at the position shown ahead of MaxiCode B and then moves device A in direction C, which represents a direction normal to the length of scanner device A. As noted, one dimension of image storage, such as a buffer memory, has a pixel position for each pixel position of device A, e.g., one pixel for each CCD sensor. Scanner device A may typically provide 1024 pixels, or some fraction or multiple thereof. This pixel capability must be selected on the basis of the resolution required to read dataforms of the complexity expected to be encountered. The required storage capacity of the buffer memory is thus determined by the number of scanner pixels and the number of lines of image data to be stored in order to scan and decode a single dataform.
FIG. 2 is a graphical representation of a buffer memory in simplified form. Once the pixel capacity of the scanner device is selected (horizontal row of pixel squares) the line capacity along the arrow coordinate must be determined (vertical columns of pixel squares). It will be apparent that if a large number of buffer memory rows of pixel storage are provided, there will be a high probability that all portions of a dataform will be scanned by an operator and there will be a corresponding high memory and processing cost. Conversely, for a small number of buffer memory rows of pixel storage memory cost and storage processing cost will be low, but portions of the dataform may not be scanned into memory by an operator. This is illustrated in FIGS. 3A and 3B. In FIG. 3A, if the operator triggers the scanner at T=0, which is ahead of dataform B in this example, a buffer memory large enough to store lines of image data for the entire image area D will be adequate to capture the entire dataform image. However, if in FIG. 3B a small buffer memory capable of storing image data only for area E is provided, the dataform image may be only partially captured before the buffer memory is full. Decoding would then be unsuccessful and the operator would have to repeat scanning in order to attempt to capture the complete dataform. Prior types of bar code readers may attempt to minimize this problem by incorporating a larger buffer memory. However, this solution is costly and results in increased power consumption. It also requires extended processing times for decoding, because image processing must be carried out for a larger buffer memory area.
Pursuant to the invention it is realized that, as conceptually indicated in FIG. 3C, a small buffer memory (adequate to provide storage for only image area E) can be successfully utilized. This will be possible if it can be arranged to store and retain lines of incoming image data of interest, in preference to lines of image data which do not contain dataform information and thus are not of interest.
Objects of the invention are, therefore, to provide new and improved dataform readers and methods able to utilize a linear array of photosensitive devices to read complex dataforms for successful decoding and, more particularly, dataform readers and methods providing one or more of the following capabilities:
operation with limited memory capacity, with interactive control of data retention based on concurrent analysis of incoming image data; PA1 operation with first-in-first-out data retention, with interactive analysis to determine image data of interest; PA1 operation with a memory capacity smaller than would be required to store an entire image of a dataform; PA1 operation with image data storage retention based on identification of relevant dataform image data; PA1 operation with image data storage retention based on identification of the type of dataform for which image data is stored; and PA1 operation based on location of a dataform image within image data, determination of an area of interest including the dataform image, and retention of image data for only a limited area including the area of interest. PA1 the memory has (i) a capacity to store a number of lines of image data adequate to store a complete image of the dataform, (ii) a default FIFO mode in which the earliest stored line of image data is discarded when a line in excess of the number of lines of memory capacity is coupled from the sensor, and (iii) a retain mode selectable to retain a specified series of lines of image data; and PA1 the locator is further responsive to successful feature recognition to place the memory in a retain mode to retain (without discard) identified series of lines of image data for use in decoding the dataform. PA1 (a) providing successive lines of image data, including lines representative of illumination reflected from a dataform; PA1 (b) storing successive lines of the image data in a memory having a capacity to store a number of lines of image data; PA1 (c) concurrently with step (b), analyzing successive lines of the image data to provide recognition of a feature of the dataform upon storage of a reference line of image data; and PA1 (d) upon recognition of such feature, identifying a series of lines of image data to be used for decoding the dataform. PA1 (e) retaining in memory each line of the series of lines of image data until such line is processed for decoding of the dataform; and PA1 (f) discarding from memory an earliest line of image data upon storage of a later line of image data in excess of the number of lines of storage capacity, provided the earliest line is one of: a line of image data not included in the series of lines; a line of image data which has already been processed for decoding of the dataform.